
#pragma once

#include "iostream"
#include "vector"
#include "algorithm"

using namespace std;
/*HJJ QQ479287006
 *
 * */

void ShellSort(vector<int> &nums){

    //第一个循环 歩长 分成step个组 注意这个条件 stmp>0 没有等于
    for (int step = nums.size()/2; step >0 ;step=step/2 ) {

        //组
        for (int i = 0; i <step ; ++i) {
           //组中元素
            for (int j = i+step; j <nums.size() ; j=j+step) {
                //进行插入排序
                 int p=nums[j];
                 int k=j-step;
                while (k>=0&&p<nums[k]){
                    nums[k+step]=nums[k];
                    k=k-step;
                }
              nums[k+step]=p;


            }


        }





    }


    for (const auto &item : nums)
        cout<<item<<" ";

}
